package ottoFebDuemilaundici;

import java.util.Iterator;

import positionList.BoundaryViolationException;
import positionList.InvalidPositionException;
import positionList.Position;
import binaryTree.EmptyTreeException;

public interface Tree<E> {

	public int size();

	public boolean isEmpty();

	public Position<E> root() throws EmptyTreeException;

	public Position<E> parent(Position<E> v) throws InvalidPositionException,
			BoundaryViolationException;

	public Iterator<Position<E>> children(Position<E> v)
			throws InvalidPositionException;

	public boolean isInternal(Position<E> v) throws InvalidPositionException;

	public boolean isRoot(Position<E> v) throws InvalidPositionException;

} // end interface Tree
